From 017610862e55a31a5abb2a7e7da39ad628794e1e Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Tue, 16 Apr 2013 14:38:27 +0100 Subject: [PATCH] xen/arm: gic_disable_cpu must be called with interrupts disabled gic_disable_cpu is only called with interrupt disabled. Use spin_lock instead of spin_lock_irq and check the function is called with interrupts disabled. Signed-off-by: Julien Grall Acked-by: Ian Campbell --- xen/arch/arm/gic.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index dd902d293c..1e2d493e14 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -421,10 +421,12 @@ void __cpuinit gic_init_secondary_cpu(void) /* Shut down the per-CPU GIC interface */ void gic_disable_cpu(void) { - spin_lock_irq(&gic.lock); + ASSERT(!local_irq_is_enabled()); + + spin_lock(&gic.lock); gic_cpu_disable(); gic_hyp_disable(); - spin_unlock_irq(&gic.lock); + spin_unlock(&gic.lock); } void gic_route_ppis(void) -- 2.30.2